function checktoken() {
    return async function (ctx, next) {
        try {
            //获取token
            let token = ctx.request.header.token;
            // 检查是否退出登录
            let checkToken = await ctx.app.redis.sismember('token',token);
            if(checkToken){
                throw Error(`${token}已经注销，无法使用了`);
            }

            //校验token
            let decode = ctx.app.jwt.verify(token, ctx.app.config.jwt.secret);
            if (decode.username) {
                console.log('token校验通过');
                await next();
            } else {
                ctx.body = {
                    code: 1,
                    msg: "用户名或者密码错误"
                }
            }
        } catch (e) {
            console.log('token校验失败',e);
            ctx.body = {
                code: 1,
                msg: "token未通过验证"
            }
        }

    }
}

module.exports = checktoken;